home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2002 November / SGI IRIX Base Documentation 2002 November.iso / usr / share / catman / p_man / cat5 / opt.z / opt
Encoding:
Text File  |  2002-10-03  |  30.0 KB  |  507 lines

  1. OPT(5)                                                 Last changed: 4-7-99
  2.  
  3.  
  4. NNAAMMEE
  5.      OOPPTT - Miscellaneous compiler optimizations option group
  6.  
  7. SSYYNNOOPPSSIISS
  8.      --OOPPTT:: ...
  9.  
  10. IIMMPPLLEEMMEENNTTAATTIIOONN
  11.      IRIX systems
  12.  
  13. DDEESSCCRRIIPPTTIIOONN
  14.      This man page describes the general optimization options accepted by
  15.      the ff9900(1), ff7777(1), CCCC(1), cccc(1), and cc8899(1) commands.
  16.  
  17.      The --OOPPTT:: option group controls miscellaneous optimizations.  This
  18.      option overrides default optimizations.
  19.  
  20.      You can specify more than one suboption to the --OOPPTT:: option either by
  21.      using colons to separate each suboption or by specifying multiple
  22.      options on the command line.  For example, the following command lines
  23.      are equivalent:
  24.  
  25.           f90 -OPT:cis=ON:cray_ivdep=OFF b.f
  26.           f90 -OPT:cis=ON -OPT:cray_ivdep=OFF b.f
  27.  
  28.      Some --OOPPTT:: suboptions are specified with a setting that either enables
  29.      or disables the feature.  To enable a feature, specify the suboption
  30.      either alone or with ==11, ==OONN, or ==TTRRUUEE.  To disable a feature, specify
  31.      the suboption with either ==00, ==OOFFFF, or ==FFAALLSSEE.  For example, the
  32.      following command lines are equivalent:
  33.  
  34.           f90 -OPT:cis:cray_ivdep=OFF:div_split=FALSE a.f
  35.           f90 -OPT:cis=1:cray_ivdep=0:div_split=OFF a.f
  36.  
  37.      For brevity, this man page shows only the OONN or OOFFFF settings to
  38.      suboptions, but 00, 11, TTRRUUEE, and FFAALLSSEE are also allowed as settings.
  39.  
  40.      There are other options to the compiler commands that control
  41.      optimization.  For information on the general optimization levels, see
  42.      the --OO option on the command man page for your compiler.  For
  43.      information about inlining and interprocedural optimization, see the
  44.      --IINNLLIINNEE:: ... option or the iippaa(5) man page.  For information on loop
  45.      nest optimization, see the llnnoo(5) man page.
  46.  
  47.      The --OOPPTT:: option accepts the following suboptions:
  48.  
  49.      SSuubbooppttiioonnss  AAccttiioonn
  50.  
  51.      aalliiaass==_n_a_m_e  Specifies the pointer aliasing model to be used.  By
  52.                  specifiying one of the following for _n_a_m_e, the compiler is
  53.                  able to make assumptions throughout the compilation:
  54.  
  55.                _n_a_m_e                     AAssssuummppttiioonn
  56.  
  57.                AANNYY or CCOOMMMMOONN__SSCCAALLAARR     AANNYY specifies that any two memory
  58.                                         references can be aliased unless
  59.                                         the compiler can determine
  60.                                         otherwise.  Default pointer
  61.                                         aliasing model.
  62.  
  63.                                         CCOOMMMMOONN__SSCCAALLAARR specifies that scalar
  64.                                         variables that are defined in a
  65.                                         common block along with array
  66.                                         variables are not referenced or
  67.                                         modified by any accesses of the
  68.                                         array variables.
  69.  
  70.                                         (C and C++ only)
  71.  
  72.                ccrraayy__ppooiinntteerr or nnoo__ccrraayy__ppooiinntteerr
  73.                                         ccrraayy__ppooiinntteerr asserts that a
  74.                                         pointee's storage is never overlaid
  75.                                         on another variable's storage.  The
  76.                                         pointee is stored in memory before
  77.                                         a call to an external procedure and
  78.                                         is read out of memory as its next
  79.                                         reference.  It is also stored
  80.                                         before a RREETTUURRNN or EENNDD statement of
  81.                                         a subprogram
  82.  
  83.                                         nnoo__ccrraayy__ppooiinntteerr asserts that a
  84.                                         pointee's storage can overlay on
  85.                                         another variable's storage.
  86.                                         Default.
  87.  
  88.                                         (Fortran 90 or FORTRAN 77)
  89.  
  90.                TTYYPPEEDD or NNOO__TTYYPPEEDD        TTYYPPEEDD specifies that pointers of
  91.                                         distinct base types are assumed to
  92.                                         point to distinct, non-overlapping
  93.                                         objects.
  94.  
  95.                                         NNOO__TTYYPPEEDD specifies that pointers to
  96.                                         different base types may point to
  97.                                         the same object.
  98.  
  99.                                         (C and C++ only)
  100.  
  101.                UUNNNNAAMMEEDD or NNOO__UUNNNNAAMMEEDD    UUNNNNAAMMEEDD specifies that pointers are
  102.                                         assumed never to point to named
  103.                                         objects.
  104.  
  105.                                         NNOO__UUNNNNAAMMEEDD specifies that the
  106.                                         pointer may point to named object.
  107.  
  108.                                         (C and C++ only)
  109.  
  110.                RREESSTTRRIICCTT or NNOO__RREESSTTRRIICCTT  RREESSTTRRIICCTT specifies that distinct
  111.                                         pointers are assumed to point to
  112.                                         distinct, non-overlapping objects.
  113.  
  114.                                         NNOO__RREESSTTRRIICCTT specifies that distinct
  115.                                         pointers may point to overlapping
  116.                                         storage.
  117.  
  118.                                         (C and C++ only)
  119.  
  120.                ppaarrmm or nnoo__ppaarrmm          ppaarrmm asserts that Fortran
  121.                                         parameters do not alias to any
  122.                                         other variable.  Default.
  123.  
  124.                                         nnoo__ppaarrmm asserts that Fortran
  125.                                         parameters can alias to any other
  126.                                         variable.
  127.  
  128.                                         (Fortran 90 or FORTRAN 77)
  129.  
  130.      cciiss[[ == (( OONN||OOFFFF ))]]
  131.                Converts SIN/COS pairs with the same argument to a single
  132.                call that calculates both values at once.  The default is
  133.                OONN.
  134.  
  135.      ccoonnsstt__ccooppyy__lliimmiitt==_n
  136.                (cccc, cc8899, and ff7777 only) Do not do const/copy propagation if
  137.                there are more than _n expressions in a subprogram.  Default
  138.                is _n=10000.
  139.  
  140.      ccrraayy__iivvddeepp[[ == (( OONN||OOFFFF ))]]
  141.                Instructs the compiler to ignore all vector dependencies
  142.                when encountering IIVVDDEEPP directives.  The default is OOFFFF.
  143.  
  144.      ddiivv__sspplliitt[[ == (( OONN||OOFFFF ))]]
  145.                Enables or disables the calculation of x/y as x*(1.0/y).
  146.                The default is ddiivv__sspplliitt==OOFFFF.
  147.  
  148.                This is typically enabled by the --OOPPTT::IIEEEEEE__aarriitthhmmeettiicc==33
  149.                option.  Also see the --OOPPTT::rreecciipp option.  This option should
  150.                be used with caution because it produces less accurate
  151.                results.
  152.  
  153.      ffaasstt__bbiitt__iinnttrriinnssiiccss[[ == (( OONN||OOFFFF ))]]
  154.                OONN turns off the check for the bit count being within range
  155.                for Fortran bit intrinsics (for example, BBTTEESSTT and IISSHHFFTT).
  156.                The default is OOFFFF.
  157.  
  158.      ffaasstt__ccoommpplleexx[[ == (( OONN||OOFFFF ))]]
  159.                ffaasstt__ccoommpplleexx==OONN enables fast calculations for values
  160.                declared as type complex.  When set to OONN, complex absolute
  161.                value (norm) and complex division use fast algorithms that
  162.                overflow for an operand (divisor, in the case of division)
  163.                that has an absolute value that is larger than the square
  164.                root of the largest representable floating-point number (or
  165.                underflow for a value that is smaller than the square root
  166.                of the smallest representable floating point number).
  167.  
  168.                The default is OOFFFF.  ffaasstt__ccoommpplleexx==OONN is enabled if
  169.                --OOPPTT::rroouunnddooffff==33 is in effect.
  170.  
  171.      ffaasstt__eexxpp[[ == (( OONN||OOFFFF ))]]
  172.                ffaasstt__eexxpp==OONN enables optimization of exponentiation by
  173.                replacing the run-time call for exponentiation by
  174.                multiplication and/or square root operations for certain
  175.                compile-time constant exponents (integers and halves).  This
  176.                can produce differently rounded results than the run-time
  177.                function.  ffaasstt__eexxpp==OONN is in effect unless --OOPPTT::rroouunnddooffff==11
  178.                is in effect.  The default is OONN.
  179.  
  180.      ffaasstt__iioo[[ == (( OONN||OOFFFF ))]]
  181.                (C/C++ only) Enables inlining of pprriinnttff(()), ffpprriinnttff(()),
  182.                sspprriinnttff(()), ssccaannff(()), ffssccaannff(()), ssssccaannff(()), and pprriinnttww(()).  This
  183.                option is in effect only when the candidates for inlining
  184.                are marked as intrinsic in the ssttddiioo..hh and ccuurrsseess..hh files.
  185.                The default is OOFFFF.
  186.  
  187.      ffaasstt__nniinntt[[ == (( OONN||OOFFFF ))]]
  188.                ffaasstt__nniinntt==OONN uses hardware features to implement NNIINNTT and
  189.                AANNIINNTT (both single- and double-precision versions).  The
  190.                default is OOFFFF, but ffaasstt__nniinntt==OONN is enabled by default if
  191.                --OOPPTT::rroouunnddooffff==33 is in effect.  ffaasstt__nniinntt==OONN is also enabled
  192.                when ffaasstt__ttrruunncc==OONN is in effect.
  193.  
  194.                FORTRAN 77 and Fortran 90 only:  This violates the FORTRAN
  195.                77 and Fortran 90 standards for certain argument values
  196.                because it rounds as specified by the IEEE standard, rather
  197.                than as specified by the Fortran standards (for example,
  198.                FORTRAN 77 specifies that NNIINNTT((11..55)) is 2, and NNIINNTT((22..55)) is
  199.                3, while IEEE rounds both of these to 2). If ffaasstt__ttrruunncc is
  200.                also enabled, NNIINNTT and AANNIINNTT are implemented with round
  201.                instructions (i.e., ffaasstt__nniinntt takes precedence for these
  202.                intrinsics).
  203.  
  204.      ffaasstt__ssqqrrtt[[ == (( OONN||OOFFFF ))]]
  205.                ffaasstt__ssqqrrtt==OONN calculates square roots using the identity
  206.                ssqqrrtt((xx)) == xx**rrssqqrrtt((xx)), where rrssqqrrtt is the reciprocal square
  207.                root operation.  The default is OOFFFF.  This option is ignored
  208.                unless --mmiippss44 and --rr88000000 are also in effect.
  209.  
  210.                WARNING:  This option results in ssqqrrtt((00..00)) producing a NaN
  211.                result.  Use it only when zero ssqqrrtt operands are not valid.
  212.  
  213.      ffaasstt__ttrruunncc[[ == (( OONN||OOFFFF ))]]
  214.                ffaasstt__ttrruunncc==OONN inlines the NNIINNTT, AANNIINNTT, AAIINNTT, and AAMMOODD
  215.                Fortran intrinsics, both single- and double-precision
  216.                versions.  The default is OOFFFF.  ffaasstt__ttrruunncc==OONN is enabled
  217.                automatically if --OOPPTT::rroouunnddooffff==11 (or greater) is in effect.
  218.  
  219.                FORTRAN 77 and Fortran 90 only:  Although this is compliant
  220.                with the FORTRAN 77 and Fortran 90 standards, it reduces the
  221.                valid argument range.  If ffaasstt__nniinntt is also enabled, NNIINNTT
  222.                and AANNIINNTT are implemented with round instructions (that is,
  223.                ffaasstt__nniinntt takes precedence for these intrinsics).
  224.  
  225.      ffoolldd__rreeaassssoocciiaattee[[ == (( OONN||OOFFFF ))]]
  226.                ffoolldd__rreeaassssoocciiaattee==OONN allows optimizations involving
  227.                reassociation of floating-point quantities.  The default is
  228.                OOFFFF.  ffoolldd__rreeaassssoocciiaattee==OONN is enabled automatically when --OO33
  229.                is in effect or when --OOPPTT::rroouunnddooffff==22 or greater is in
  230.                effect.
  231.  
  232.      ffoolldd__uunnssaaffee__rreellooppss[[ == (( OONN||OOFFFF ))]]
  233.                ffoolldd__uunnssaaffee__rreellooppss==OONN folds relational operators in the
  234.                presence of possible integer overflow.  The default is OONN.
  235.  
  236.      ffoolldd__uunnssiiggnneedd__rreellooppss[[ == (( OONN||OOFFFF ))]]
  237.                ffoolldd__uunnssiiggnneedd__rreellooppss==OONN folds unsigned relational operators
  238.                in the presence of possible integer overflow.  The default
  239.                is OOFFFF.
  240.  
  241.      ggoott__ccaallll__ccoonnvveerrssiioonn[[ == (( OONN||OOFFFF ))]]
  242.                ggoott__ccaallll__ccoonnvveerrssiioonn==OONN loads function addresses to be moved
  243.                out of loops.  The load is set up with the proper relocation
  244.                so that the address is resolved at program start-up time.
  245.                The default is OOFFFF when --OO22 or lower is in effect.
  246.                ggoott__ccaallll__ccoonnvveerrssiioonn==OONN when --OO33 is in effect.
  247.  
  248.                NOTE:  This option should be disabled when compiling shared
  249.                objects that contain function addresses that may be
  250.                preempted by rrlldd(1).  For more information, see the ddssoo(5)
  251.                man page.
  252.  
  253.      IIEEEEEE__aarriitthhmmeettiicc==_n
  254.                Specifies the level of conformance to ANSI/IEEE 754-1985,
  255.                the IEEE Standard for Binary Floating-point Arithmetic,
  256.                which describes a standard for, among other things, NaN and
  257.                inf operands, arithmetic round off, and overflow.  _n can be
  258.                one of the following:
  259.  
  260.                _n   DDeessccrriippttiioonn
  261.  
  262.                1   Inhibits optimizations that produce less accurate
  263.                    results than required by ANSI/IEEE 754-1985.  This is
  264.                    the default.
  265.  
  266.                2   Allows compiler optimizations that can produce less
  267.                    accurate inexact results (but accurate exact results) on
  268.                    the target hardware.  For example, --OOPPTT::rreecciipp is enabled
  269.                    to use the hardware rreecciipp instruction.  Also,
  270.                    expressions that would have produced a NaN or an inf may
  271.                    produce different answers, but otherwise answers are the
  272.                    same as those obtained when IIEEEEEE__aarriitthhmmeettiicc==11 is in
  273.                    effect.  Examples:  00**XX may be changed to 0, and XX//XX may
  274.                    be changed to 1 even though this is inaccurate when XX is
  275.                    +inf, -inf, or NaN.
  276.  
  277.                3   Performs arbitrary, mathematically valid
  278.                    transformations, even if they can produce inaccurate
  279.                    results for operations specified in ANSI/IEEE 754-1985.
  280.                    These transformations can cause overflow or underflow
  281.                    for a valid operand range.  An example is the conversion
  282.                    of _x//_y to _x**rreecciipp((_y)) for MIPS IV targets.  Also see the
  283.                    --OOPPTT::rroouunnddooffff==_n option.
  284.  
  285.      IIEEEEEE__ccoommppaarriissoonnss[[ == (( OONN||OOFFFF ))]]
  286.              Forces all comparisons to yield results that conform to
  287.              ANSI/IEEE 754-1985, the IEEE Standard for Binary Floating-
  288.              point Arithmetic, which describes a standard for NaN and inf
  289.              operands.  The default is IIEEEEEE__ccoommppaarriissoonnss==OOFFFF.
  290.  
  291.              IIEEEEEE__ccoommppaarriissoonnss==OOFFFF produces non-IEEE results for
  292.              comparisons.  For example, xx==xx is treated as TTRRUUEE without
  293.              executing a test.
  294.  
  295.              NOTE:  This option has been deprecated and will be removed in
  296.              a future release.  The preferred alternative is the
  297.              --OOPPTT::IIEEEEEE__NNaaNN__iinnff== option.
  298.  
  299.              (Fortran 90 only)
  300.  
  301.      IIEEEEEE__NNaaNN__iinnff[[ == (( OONN||OOFFFF ))]]
  302.              IIEEEEEE__NNaaNN__iinnff==OONN forces all operations that might have IEEE-754
  303.              NaN or infinity operands to yield results that conform to
  304.              ANSI/IEEE 754-1985, the IEEE Standard for Binary Floating-
  305.              point Arithmetic, which specifies the standard for NaN and inf
  306.              operands.  The default is OOFFFF.
  307.  
  308.              IIEEEEEE__NNaaNN__iinnff==OOFFFF produces non-IEEE results for various
  309.              operations.  For example, xx==xx is treated as TRUE without
  310.              executing a test and xx//xx is simplified to 1 without dividing.
  311.              Turning this option on may suppress many such common
  312.              optimizations and hurt performance.
  313.  
  314.      iinnlliinnee__iinnttrriinnssiiccss[[ == (( OONN||OOFFFF ))]]
  315.              iinnlliinnee__iinnttrriinnssiiccss==OOFFFF turns all Fortran intrinsics that have a
  316.              library function into a call to that function.  The default is
  317.              OONN.
  318.  
  319.      lliibbeerraall__iivvddeepp[[ == (( OONN||OOFFFF ))]]
  320.              Specifies that the compiler should use UNICOS semantics when a
  321.              !!DDIIRR$$ IIVVDDEEPP directive (Fortran) or a ##pprraaggmmaa iivvddeepp statement
  322.              (C) is encountered.  With UNICOS semantics, the compiler
  323.              ignores all loop iteration dependencies.  The default is OOFFFF.
  324.              Also see the --OOPPTT::ccrraayy__iivvddeepp[[ == (( OONN||OOFFFF ))]] option.
  325.  
  326.      OOlliimmiitt==_n
  327.              Specifies that any routine bigger than _n should not be
  328.              optimized.  If --OO22 or greater is in effect and a routine is so
  329.              big that the compile speed may be slow, the compiler generates
  330.              a message indicating the OOlliimmiitt value that is needed to
  331.              optimize.  You can recompile with that value of _n, or you can
  332.              recompile with --OOPPTT::OOlliimmiitt==00 and avoid having any OOlliimmiitt
  333.              cutoff.
  334.  
  335.      ppaadd__ccoommmmoonn[[ == (( OONN||OOFFFF ))]]
  336.              ppaadd__ccoommmmoonn==OONN reorganizes common blocks to improve the cache
  337.              behavior of accesses to members of the common block.  This may
  338.              involve adding padding between members and/or breaking a
  339.              common block into a collection of common blocks.  The default
  340.              is OOFFFF.
  341.  
  342.              This option should not be used unless the common block
  343.              definitions (including EEQQUUIIVVAALLEENNCCEE) are consistent among all
  344.              sources comprising a program.  In addition, ppaadd__ccoommmmoonn==OONN
  345.              should not be specified if common blocks are initialized with
  346.              DDAATTAA statements.  If specified, ppaadd__ccoommmmoonn==OONN must be used for
  347.              all of source files in the program.
  348.  
  349.              ppaadd__ccoommmmoonn==OONN is supported for Fortran only.  It should not be
  350.              used if a common block is referenced from C code.
  351.  
  352.      pprroocceedduurree__rreeoorrddeerr[[ == (( OONN||OOFFFF ))]]
  353.              pprroocceedduurree__rreeoorrddeerr==OONN must be specified in conjunction with
  354.              --LLDD__LLAAYYOOUUTT::rreeoorrddeerr__ffiillee==_f_e_e_d_b_a_c_k__f_i_l_e to enable linker
  355.              cording.  _L_i_n_k_e_r _c_o_r_d_i_n_g is the linker's ability to optimize
  356.              the layout of functions based upon a feedback file; this
  357.              minimizes page faults and I-cache misses.  The default is OOFFFF.
  358.  
  359.              For more information on the --LLDD__LLAAYYOOUUTT option, see the lldd(1)
  360.              man page.  For an example that shows reordering of code
  361.              regions, see the _M_I_P_S_p_r_o _C_o_m_p_i_l_i_n_g _a_n_d _P_e_r_f_o_r_m_a_n_c_e _T_u_n_i_n_g
  362.              _G_u_i_d_e.
  363.  
  364.      rreecciipp[[ == (( OONN||OOFFFF ))]]
  365.              rreecciipp==OONN specifies that faster, but potentially less accurate,
  366.              reciprocal operations should be performed.  The default is
  367.              OOFFFF.
  368.  
  369.              If --OO33 or --OOPPTT::IIEEEEEE__aarriitthhmmeettiicc==22 or above are in effect,
  370.              rreecciipp==OONN is enabled.  The rreecciipp==OONN setting is effective only
  371.              if --rr88000000 is in effect.
  372.  
  373.      rreeoorrgg__ccoommmmoonn[[ == (( OONN||OOFFFF ))]]
  374.              rreeoorrgg__ccoommmmoonn==OONN reorganizes common blocks to improve the cache
  375.              behavior of accesses to members of the common block.  The
  376.              reorganization is done only if the compiler detects that it is
  377.              safe to do so.
  378.  
  379.              rreeoorrgg__ccoommmmoonn==OONN is enabled when --OO33 is in effect and when all
  380.              files that reference the common block are compiled at --OO33..
  381.  
  382.              rreeoorrgg__ccoommmmoonn==OOFFFF is set when the file that contains the common
  383.              block is compiled at --OO22 (or below).
  384.  
  385.      rroouunnddooffff==_n
  386.              Specifies the level of acceptable departure from source
  387.              language floating-point, round-off, and overflow semantics.  _n
  388.              can be one of the following:
  389.  
  390.              _n   DDeessccrriippttiioonn
  391.  
  392.              0   Inhibits optimizations that might affect the
  393.                  floating-point behavior.  This is the default when
  394.                  optimization levels --OO00, --OO11, and --OO22 are in effect.
  395.  
  396.              1   Allows simple transformations that might cause limited
  397.                  round-off or overflow differences.  Compounding such
  398.                  transformations could have more extensive effects.
  399.  
  400.              2   Allows more extensive transformations, such as the
  401.                  reordering of reduction loops.  This is the default level
  402.                  when --OO33 is in effect.
  403.  
  404.              3   Enables any mathematically valid transformation.
  405.  
  406.              To obtain best performance in conjunction with software
  407.              pipelining, specify rroouunnddooffff==22 or rroouunnddooffff==33.  This is because
  408.              reassociation is required for many transformations to break
  409.              recurrences in loops.  Note that the optimizations enabled by
  410.              this option can rearrange expressions across parentheses or
  411.              even statement boundaries.  Also see the descriptions for the
  412.              --OOPPTT::IIEEEEEE__aarriitthhmmeettiicc, --OOPPTT::ffaasstt__ccoommpplleexx, --OOPPTT::ffaasstt__ttrruunncc, and
  413.              --OOPPTT::ffaasstt__nniinntt options.
  414.  
  415.      rrssqqrrtt[[ == (( OONN||OOFFFF ))]]
  416.              rrssqqrrtt==OONN specifies that faster, but potentially less accurate,
  417.              square root operations should be performed.  The default is
  418.              OOFFFF.
  419.  
  420.              If --OOPPTT::IIEEEEEE__aarriitthhmmeettiicc==22 (or above) or --OO33 are in effect,
  421.              rrssqqrrtt==OONN is enabled.
  422.  
  423.      ssppaaccee[[ == (( OONN||OOFFFF ))]]
  424.              ssppaaccee==OONN specifies that code space is to be given priority in
  425.              tradeoffs with execution time in optimization choices.  The
  426.              default is OOFFFF.
  427.  
  428.      ssppeeccuullaattiivvee__ppttrr__ddeerreeff [[ == (( OONN||OOFFFF ))]]
  429.              This option allows speculative loads of memory locations that
  430.              differ by a small offset from some referenced memory location.
  431.              For example, ssppeeccuullaattee aa[[ii++11]] iiff aa[[ii]] is referenced; and
  432.              ssppeeccuullaattee pp-->>ffiieelldd22 iiff pp-->>ffiieelldd11 is referenced.
  433.  
  434.              The feature is turned ON by default at --OO22 and above.
  435.              However, the legal offset ranges are different.  At --OO22, the
  436.              range is 32 (-16 .. +16).  At --OO33, the range is 128 (-64 ..
  437.              +64).  This optimization may result in an exception if the
  438.              speculated location is on a different page than that of the
  439.              referenced memory location.  The chances of this happening
  440.              with these legal offset ranges is very remote.
  441.  
  442.      sswwpp[[ == (( OONN||OOFFFF ))]]
  443.              sswwpp==OONN enables software pipelining.  sswwpp==OONN is enabled when
  444.              --OO33 is in effect.  The default is OOFFFF.
  445.  
  446.      uunnrroollll__aannaallyyssiiss[[ == (( OONN||OOFFFF ))]]
  447.              uunnrroollll__aannaallyyssiiss==OONN analyzes resource usage and recurrences in
  448.              bodies of innermost loops that do not qualify for being fully
  449.              unrolled.  Such loops are unrolled only to the extent to which
  450.              there is a potential benefit in doing so.  A loop could be
  451.              unrolled, for example, to decrease the shortest possible
  452.              schedule length per iteration.  The default is OONN.
  453.  
  454.              uunnrroollll__aannaallyyssiiss==OONN can have the negative effect of unrolling
  455.              loops less than the upper limit dictated by the
  456.              OOPPTT::uunnrroollll__ttiimmeess__mmaaxx and OOPPTT::uunnrroollll__ssiizzee specifications.
  457.  
  458.      uunnrroollll__ssiizzee==_n
  459.              Specifies the maximum size (in instructions) of an unrolled
  460.              loop.  Specify an integer for _n.  When --OOPPTT::ssppaaccee==OOFFFF is in
  461.              effect, the default is 8800.  When --OOPPTT::ssppaaccee==OONN is in effect,
  462.              the default is 2200.
  463.  
  464.              This option indirectly determines which loops can be fully
  465.              unrolled.  Also see the --OOPPTT::uunnrroollll__ttiimmeess__mmaaxx option.
  466.  
  467.      uunnrroollll__ttiimmeess__mmaaxx==_n
  468.              Specifies the maximum number of times a loop will be unrolled
  469.              if it is not going to be fully unrolled.  Specify an integer
  470.              for _n.  The default is 88 when --rr88000000 or --rr1100000000 are in effect,
  471.              and the default is 44 in all other cases.  Also see the
  472.              --OOPPTT::uunnrroollll__ssiizzee option.
  473.  
  474.      wwrraapp__aarroouunndd__uunnssaaffee__oopptt==[[ == (( OONN||OOFFFF ))]]
  475.              wwrraapp__aarroouunndd__uunnssaaffee__oopptt==OOFFFF disables both the induction
  476.              variable replacement and linear function test replacement
  477.              optimizations.  By default, these optimizations are enabled at
  478.              --OO33.  This option is disabled by default at --OO00.
  479.  
  480.              Setting this option to OOFFFF can degrade performance.  It is
  481.              provided, however, as a diagnostic tool to identify the
  482.              situation described previously.
  483.  
  484. SSEEEE AALLSSOO
  485.      cccc(1), CCCC(1), ccoorrdd(1), ddssoo(1), ff7777(1), ff9900(1), ffppmmooddee(1), hhiinnvv(1),
  486.      lldd(1), mmaakkee(1), ppiixxiiee(1), ppmmaakkee(1), pprrooff(1), rrlldd(1), ssmmaakkee(1)
  487.  
  488.      mmaatthh(3M)
  489.  
  490.      aauuttoo__pp(5), ggpp__oovveerrffllooww(5), iippaa(5), llnnoo(5), ppee__eennvviirroonn(5)
  491.  
  492.      _C _L_a_n_g_u_a_g_e _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l
  493.  
  494.      _M_I_P_S_p_r_o _C _a_n_d _C++ _P_r_a_g_m_a_s
  495.  
  496.      _M_I_P_S_p_r_o _C_o_m_p_i_l_i_n_g _a_n_d _P_e_r_f_o_r_m_a_n_c_e _T_u_n_i_n_g _G_u_i_d_e
  497.  
  498.      _C_o_m_p_i_l_e_r _I_n_f_o_r_m_a_t_i_o_n _F_i_l_e (_C_I_F) _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l
  499.  
  500.      _M_I_P_S_p_r_o _F_o_r_t_r_a_n _7_7 _P_r_o_g_r_a_m_m_e_r'_s _G_u_i_d_e
  501.  
  502.      _M_I_P_S_p_r_o _7 _F_o_r_t_r_a_n _9_0 _C_o_m_m_a_n_d_s _a_n_d _D_i_r_e_c_t_i_v_e_s _R_e_f_e_r_e_n_c_e _M_a_n_u_a_l
  503.  
  504.      _M_I_P_S_p_r_o _6_4-_B_i_t _P_o_r_t_i_n_g _a_n_d _T_r_a_n_s_i_t_i_o_n _G_u_i_d_e
  505.  
  506.      This man page is available only online.
  507.